package demo8;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/*
* @Configuration是Spring配置类,相当于xml配置文件,可以辅助容器进行初始化操作
*被该注解标注的类被认定为是Spring的配置类,可以辅助容器进行初始化操作
* @ComponentScan("demo8")表示Spring容器会扫描demo8包及其子包中的所有被@Component标注的类, 并将这些类纳入管理。
*
* */
@Configuration
@ComponentScan("demo8")
public class Config {
    /*
       @Bean注解
       当我们希望让Spring容器管理一个对象,但是该对象无法由我们添加注解@Component时,我们可以通过这种方式
       主动向容器种添加一个对象.

       做法:
       1:在配置类种定义一个方法,方法的名字无妨(见名知义即可),方法的返回值就是希望被容器管理的对象
       2:在方法种完成该对象的初始化工作并将其返回
       3:在这个方法上使用@Bean注解
         该注解的作用就是告知容器,这个方法的返回值要纳入容器管理.
         那么容器初始化时就会调用这个方法,并将返回的对象也纳入到容器种进行管理.
    */
@Bean
public Student initStudent() {
    return new Student();
}
    @Bean
    public DruidDataSource initDruidDataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setUrl("jdbc:mysql://localhost:3307/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true");
        ds.setUsername("root");
        ds.setPassword("root");
        ds.setInitialSize(5);
        ds.setMaxActive(30);
        return ds;
    }
}
